package com.code.refactoring.重构demo.状态机扭转.check;

/**
 * @author wangxi03 created on 2021/4/29 10:53 上午
 * @version v1.0
 */

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 状态机校验器
 */
public interface Checkable<T, C> {
    /**
     * 参数校验
     */
    default List<Checker<T, C>> getParamChecker() {
        return Collections.EMPTY_LIST;
    }
    /**
     * 需同步执行的状态检查器
     */
    default List<Checker<T, C>> getSyncChecker() {
        return new ArrayList<>();
    }
    /**
     * 可异步执行的校验器（应用于多个校验器之间并行校验）
     */
    default List<Checker<T, C>> getAsyncChecker() {
        return Collections.EMPTY_LIST;
    }
}